java查找HashMap是否包含所选值和返回键 3 月,2 周 Questions & Answers 44405 有没有办法找到我的HashMap<String, String>是否包含value=“x”的条目(key,value)并按顺序遍历所有条目
# 1 楼答案 你可能想考虑使用一个双向地图,比如谷歌的番石榴图书馆中的一个:http://guava-libraries.googlecode.com/svn/trunk/javadoc/index.html?com/google/common/collect/BiMap.html
# 3 楼答案 您可以找到您正在查找的信息,但效率低下: Object key; Object val; HashMap hm = new HashMap(); for (Iterator iter = hm.entrySet().iterator(); iter.hasNext();) { Map.Entry e = (Map.Entry) iter.next(); if (key.equals(e.getKey()) && val.equals(e.getValue())) { // do something } } 在一些其他答案中建议,你可能会考虑一个更好的数据结构来解决你试图解决的问题。
# 4 楼答案 使用HashMap。containsKey()以了解它是否包含给定的键。 使用HashMap。keySet()或HashMap。entrySet()检索条目或值的集合,并按顺序对其进行迭代
# 5 楼答案 HashMap.containsKey() 这就是HashMap最初的目的 (不知道“按顺序浏览所有条目”是什么意思。每个键只有一个条目。) 编辑: 现在您编辑了这个问题,答案是否!:( 如果您需要该功能,请设计自己的双向HashMap,将每个值的位置存储在另一个值中(希望有意义),然后使用该类HashMap不是为此而设计的
# 6 楼答案 一个常见的模式是使用 if(hashMap.containsKey(key)) { Object o = hashMap.get(key); } 但是,如果您知道没有一个值是null(许多地图集合不允许null),那么您可以执行以下更有效的操作 Object o = hashMap.get(key); if (o != null) { } 顺便说一句:containsKey与 Set<Key> keys = hashMap.keySet(); boolean containsKey = keys.contains(key);
# 1 楼答案
你可能想考虑使用一个双向地图,比如谷歌的番石榴图书馆中的一个:http://guava-libraries.googlecode.com/svn/trunk/javadoc/index.html?com/google/common/collect/BiMap.html
# 2 楼答案
有^{} 方法,但对于常见的实现,这只是在内部迭代所有值,并将它们与参数进行比较
# 3 楼答案
您可以找到您正在查找的信息,但效率低下:
在一些其他答案中建议,你可能会考虑一个更好的数据结构来解决你试图解决的问题。
# 4 楼答案
使用HashMap。containsKey()以了解它是否包含给定的键。 使用HashMap。keySet()或HashMap。entrySet()检索条目或值的集合,并按顺序对其进行迭代
# 5 楼答案
HashMap.containsKey()
这就是
HashMap
最初的目的(不知道“按顺序浏览所有条目”是什么意思。每个键只有一个条目。)
编辑:
现在您编辑了这个问题,答案是否!:(
如果您需要该功能,请设计自己的双向
HashMap
,将每个值的位置存储在另一个值中(希望有意义),然后使用该类HashMap
不是为此而设计的# 6 楼答案
一个常见的模式是使用
但是,如果您知道没有一个值是
null
(许多地图集合不允许null),那么您可以执行以下更有效的操作顺便说一句:containsKey与